Due to the increasing computing power of modern computers, it has become possible to implement a virtual reality, within which diverse physical processes are modeled. This has found an application in the entertainment industry—a large number of computer game simulators have appeared, in which the user can control simulated objects as if it were occurring in real life (with a given level of precision, of course). The use of virtual reality has made it possible for users in different locations to play together, interacting with the very same objects.
The main problem with computer models of physical processes (such as the modeling of the problems of interaction of several material bodies, where the problems may involve certain computer games such as billiards, table soccer, and so forth) is the great complexity of the computations of the interaction of physical objects with each other (ball, players, elements of the game table, and so on). The complexity of the calculations performed leads to low accuracy or speed of such calculations, which negatively affects the level of comfort and the feeling of reality of the game, or results in great expense for the organization of the computer system which is able to perform the necessary calculations with the necessary accuracy.
At present, there are many physics engines (computer programs which perform a computer modeling and simulation of the physical laws of the real world in a virtual world), both commercial (such as Havok™) and free of charge (such as PhysX™), which provide their own API (Application Programming Interface) for modeling diverse physical processes and physical systems. The main drawback of the existing physics engines is the low precision of the calculations and the limited number of interacting objects or types of interacting objects (for example, it is very hard to realize a modeling of the interaction of rubber objects).
Besides the modeling of physical processes, a proper visualization of the processes being modeled is also necessary for a comfortable experience of the virtual reality by the user. Many different techniques are used for this, employing a large array of computing devices (such as video cards). One method of visualizing a particular physical model is the method of ray tracing, in which the behavior of the rays of light passing through the model of the physical processes is simulated. Even so, this method of visualization is exceedingly resource-hungry and cannot be incorporated in real time on existing computing devices (even supercomputers). In order to find a compromise between the usable computing resources and the accuracy of the visualization, simplifications are made, such as a backward ray tracing, which work noticeably faster, but produce less accurate results.
Therefore, in order to solve the above-described problems, various methods of realization of physical processes are employed, during which the users can remotely perform various actions and observe the result of the performance of those actions. For example, during the execution of a remote game between users (say, billiards) the users can control the cue sticks remotely, striking the billiard balls which are also remotely present on the billiard table and observing the results of their game on monitors.
Although the above-described methods work well with problems of simulating simple physical processes, as well as the visualization of the processes being simulated, they cannot handle the modeling and visualization of complex processes (identical to physical ones) or work with a large number of simulated processes. As such, there is a need to improve the simulation of the interaction of physical objects.